#ifndef _API_H_
#define _API_H_
#include <string>
#include <vector>
#include <memory>
#include "UserCommand.h"
#include "IndexManager.h"
#include "Recordmanager.h"
#include "catalogmanager.h"

class API
{
private:
	std::shared_ptr<IndexManager> index;
	std::shared_ptr<Record> record;
	std::shared_ptr<CCatalog> catalog;
public:
	 API(std::shared_ptr<IndexManager> &index, 
		 std::shared_ptr<Record> &record,
		 std::shared_ptr<CCatalog> &catalog);
	 ~ API();
	std::string Execute(CUserCommand interpret);
	std::vector<std::vector<std::string>> Select(CUserCommand interpret);
};

#endif